using System;
using System.Xml;
using Server;
using Server.Spells;

namespace Server.Regions
{
	public class Jail : BaseRegion
	{
		public Jail(XmlElement xml, Map map, Region parent)
			: base(xml, map, parent)
		{
		}

		public override bool AllowBeneficial(Mobile from, Mobile target)
		{
			if (from.AccessLevel == AccessLevel.Player)
				from.SendMessage("You may not do that in jail.");

			return (from.AccessLevel > AccessLevel.Player);
		}

		public override bool AllowHarmful(Mobile from, Mobile target)
		{
			if (from.AccessLevel == AccessLevel.Player)
				from.SendMessage("You may not do that in jail.");

			return (from.AccessLevel > AccessLevel.Player);
		}

		public override bool AllowHousing(Mobile from, Point3D p)
		{
			return false;
		}

		public override void AlterLightLevel(Mobile m, ref int global, ref int personal)
		{
			global = LightCycle.JailLevel;
		}

		public override bool OnBeginSpellCast(Mobile from, ISpell s)
		{
			if (from.AccessLevel == AccessLevel.Player)
				from.SendLocalizedMessage(502629); // You cannot cast spells here.

			return (from.AccessLevel > AccessLevel.Player);
		}

		public override bool OnSkillUse(Mobile from, int Skill)
		{
			if (from.AccessLevel == AccessLevel.Player)
				from.SendMessage("You may not use skills in jail.");

			return (from.AccessLevel > AccessLevel.Player);
		}

		public override bool OnCombatantChange(Mobile from, Mobile Old, Mobile New)
		{
			return (from.AccessLevel > AccessLevel.Player);
		}
	}
}